﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GestionePolveri2.DAL;
using GestionePolveriLib.BL;
using FrameworkLib.Facades;

namespace GestionePolveriLib.Facades
{
    public class CausaliMagazzinoFacade : FacadeBase<GestionePolveriEntities>
    {
        public CausaliMagazzinoFacade()
        {

        }

        public List<CausaleMagazzino> GetAll()
        {
            List<CausaleMagazzino> retValue = null;

            try
            {
                GestionePolveriEntities context = this.GetContext();
                var obj = from x in context.CausaliMagazzino
                          select new CausaleMagazzino
                          {
                              ID = x.IDCausale,
                              CodCausale = x.CodCausale,
                              Descrizione = x.Descrizione
                          };

                if (obj.Any())
                {
                    retValue = obj.ToList();
                }
            }
            catch (Exception ex)
            {
                // throw;
            }

            return retValue;
        }

        public CausaleMagazzino GetCausaleByCod(string codiceCausale)
        {
            CausaleMagazzino retValue = null;

            try
            {
                GestionePolveriEntities context = this.GetContext();
                var obj = from x in context.CausaliMagazzino
                          where x.CodCausale == codiceCausale
                          select new CausaleMagazzino
                          {
                              ID = x.IDCausale,
                              CodCausale = x.CodCausale,
                              Descrizione = x.Descrizione
                          };

                if (obj.Any())
                {
                    retValue = obj.FirstOrDefault();
                }
            }
            catch (Exception ex)
            {
                // throw;
            }

            return retValue;
        }

        public CausaleMagazzino GetCausaleByID(int idCausale)
        {
            CausaleMagazzino retValue = null;

            try
            {
                GestionePolveriEntities context = this.GetContext();
                var obj = from x in context.CausaliMagazzino
                          where x.IDCausale == idCausale
                          select new CausaleMagazzino
                          {
                              ID = x.IDCausale,
                              CodCausale = x.CodCausale,
                              Descrizione = x.Descrizione
                          };

                if (obj.Any())
                {
                    retValue = obj.FirstOrDefault();
                }
            }
            catch (Exception ex)
            {
                // throw;
            }

            return retValue;
        }
    }
}
